
package analisadores;

/**
 *
 * @author elias
 * @author eduardo
 */
public class Token {

    private String lex;
    private int tipoTOKEN;

    public static int EOF = 0;

    //tokens de operador aritmético
    public static int ADICAO = 1, SUBTRACAO = 2, DIVISAO = 3,
            MULTIPLICACAO = 4, EXPONENCIAL = 5, MODULO = 6,
            LPAREN = 7, RPAREN = 8, LCHAVE = 9, RCHAVE = 10;

    //tokens de operador logico
    public static int NEGACAO = 11, AND = 12, OR = 13,
                      LOGIC_AND = 14, LOGIC_OR = 15;

    //tokens de operador de comparacao
    public static int GREATER = 21, LESSER = 22, GREATER_EQUAL = 23,
            LESSER_EQUAL = 24, EQUAL = 25, NOT_EQUAL = 26;

    //tokens variados
    public static int ATRIBUICAO = 30;

    public static int DIGITO = 31;
    public static int IDENTIFICADOR = 32;

    public static int TRUE = 35, FALSE = 36;

    //tokens de palavras reservadas
    public static int INTEIRO = 40, STRING = 41, CHAR = 42,
                        VOID = 43, FLOAT = 44, BOOLEAN = 45;
    //ESCREVER ESPECIFICAÇOES DOS OUTROS TOKENS DAQUI PRA BAIXO

    public Token(String lexema, int tipo){
        this.lex = lexema;
        this.tipoTOKEN = tipo;
    }

    public String getLexema(){
        return (this.lex);
    }

    public int getTipo(){
        return this.tipoTOKEN;
    }

    public void imprime(){
        System.out.println("Tipo: "+this.tipoTOKEN+"\t Lexema: "+this.lex);
    }

}
